▍ humdrum codex / sportsball v0.1.0
license AGPL-3.0
2.5 KB raw
id
TASK-013
title
Live ticker panel in detail view
status
🏁 Done
assignee
@humdrum-tiv
created_date
2026-06-16 23:50
updated_date
2026-06-18 01:17
labels
feature
dependencies
priority
high
ordinal
13000

Description

While viewing a live game, show a Golazo-style strip of selectable game boxes at the top (above the watched game's score box): other live games (same league first, then other leagues) plus today's finals. User can tab/arrow between boxes and press enter to switch the detail view to that game. Data comes from already-polled a.games β€” no new fetch loop.

Acceptance Criteria

Implementation Notes

Added internal/ui/ticker.go (tickerGames ordering, tickerStrip horizontal windowing, tickerCell mini-box). Wired into detail.go via detailBoxBlock (stacks ticker over score box; shared by detailView + detailScrollMax so body height stays correct). Nav in update.go: NextLg/PrevLg move tickerCursor, Enter routes through shared openDetail to switch games. Added App.tickerCursor. Tests in ticker_test.go cover ordering/exclusion, window clamping, and a render smoke test.

Final Summary

Adds a Golazo-style live ticker to the detail view: a strip of selectable game boxes above the watched game's score box showing other live games (same league first, then others) then today's finals, sourced from already-polled a.games (no new fetch). tab/β†’ and ⇧tab/← move the selection, enter switches the detail view to that game; ↑/↓ still scroll the body. Strip windows horizontally with β€Ή β€Ί off-screen affordances and hides when nothing else is on. New ticker.go + App.tickerCursor + shared openDetail helper; detailScrollMax/detailBodyAvail account for the strip's height. Tests + go vet/build pass.